#!/bin/sh
. "${srcdir=.}/init.sh"; path_prepend_ . ../src

# Test Lua support

cat <<\EOF > xg-lu-1.lua
print(_("This is a test string."))
print(_('And another one.'))
print(_("Don't be afraid to extract this one."))
print(_('I don\'t bite!'))
print(_("I said: \"This is a test.\""))
print(_('He said: "You\'re right!"'))
print(_([[I like brackets.]]))
print(_([===[Brackets are awesome!]===]))
print(_([===[==[Even nested brackets]==]===]))
print(_([===[Or even unmached number of '=' signs]==]===]))
print(_([=[
First newline in long bracket is ignored.]=]))
print(_([=[

Second newline in long bracket is extracted.]=]))
print(_([=[
Newlines inside a long bracket string
and at the end are not special.
]=]))
print(_(hmm["nope"]))
print({_"yep"})
print(_["nope"])
print(_("\097"))
print(_("\x3F\z  	
\x2a"))
-- String concatenation in regular contexts.
print(_("abc" .. "def"))
-- String concatenation *not* happening when the parentheses are omitted.
print(_"hello" " world")

print(speed / 1000 .. 'Mbps')
EOF

: ${XGETTEXT=xgettext}
${XGETTEXT} --omit-header --no-location --add-comments=TRANSLATORS: \
  -d xg-lu-1.tmp xg-lu-1.lua || Exit 1
LC_ALL=C tr -d '\r' < xg-lu-1.tmp.po > xg-lu-1.po || Exit 1

cat <<\EOF > xg-lu-1.ok
msgid "This is a test string."
msgstr ""

msgid "And another one."
msgstr ""

msgid "Don't be afraid to extract this one."
msgstr ""

msgid "I don't bite!"
msgstr ""

msgid "I said: \"This is a test.\""
msgstr ""

msgid "He said: \"You're right!\""
msgstr ""

msgid "I like brackets."
msgstr ""

msgid "Brackets are awesome!"
msgstr ""

msgid "==[Even nested brackets]=="
msgstr ""

msgid "Or even unmached number of '=' signs]=="
msgstr ""

msgid "First newline in long bracket is ignored."
msgstr ""

msgid ""
"\n"
"Second newline in long bracket is extracted."
msgstr ""

msgid ""
"Newlines inside a long bracket string\n"
"and at the end are not special.\n"
msgstr ""

msgid "yep"
msgstr ""

msgid "a"
msgstr ""

msgid "?*"
msgstr ""

msgid "abcdef"
msgstr ""

msgid "hello"
msgstr ""
EOF

: ${DIFF=diff}
${DIFF} xg-lu-1.ok xg-lu-1.po
result=$?

exit $result
